/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package elemento;

import java.util.Map;

/**
 *
 * @author Jônatas
 */
public class ClienteTelefone implements SQLAble {

    private String nome, telefone;
    private int id;
    private int id_empresa;

    public int getId_empresa() {
        return id_empresa;
    }

    public void setId_empresa(int id_empresa) {
        this.id_empresa = id_empresa;
    }

    public ClienteTelefone() {
    }

    public ClienteTelefone(String nome, String telefone) {
        setNome(nome);
        setTelefone(telefone);
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome.replaceAll("'", "''");
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone.replaceAll("'", "''");
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final ClienteTelefone other = (ClienteTelefone) obj;
        if ((this.telefone == null) ? (other.telefone != null) : !this.telefone.equals(other.telefone)) {
            return false;
        }
        return true;
    }

    @Override
    public int hashCode() {
        int hash = 7;
        hash = 83 * hash + (this.telefone != null ? this.telefone.hashCode() : 0);
        return hash;
    }

    public String getSQLInsertString(String tableName) {
        String sql = "INSERT INTO " + tableName + " ('NOME', 'TELEFONE', 'ID_EMPRESA') VALUES "
                + "("
                + "'" + seekForNull(this.nome) + "',"
                + "'" + seekForNull(this.telefone) + "',"
                + "" + (this.id_empresa > 0 ? this.id_empresa : "''") + ""
                + ");";

        return sql;
    }

    public String getSQLUpdateString(String tableName, Map<String, Object> parametersMap) {

        String otherFone = parametersMap.get("otherFone").toString();

        String sql = "UPDATE " + tableName + " SET "
                + "'NOME' = '" + seekForNull(this.nome).replaceAll("'", "''") + "', "
                + "'TELEFONE' = '" + seekForNull(this.telefone).replaceAll("'", "''") + "', "
                + "'ID_EMPRESA' = " + (this.id_empresa > 0 ? this.id_empresa : "''") + " ";

        sql += "WHERE " + tableName + ".'TELEFONE' = '" + otherFone + "'";

        return sql;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public static String seekForNull(String s) {
        if (s == null) {
            return "";
        }
        return s;
    }
}
